Protein Folding Simulation in Concurrent Constraint Programming
نویسندگان
چکیده
CCP program 1 simulation(S):2 Init=[[I1|_], [I2|_], ..., [In|_]], 3 run(1,S,Init) || 4 run(2,S,Init) || 5 ... || 6 run(n,S,Init). 7 run(ID, S, [P1, P2, ..., Pn]):8 getTails([P1, ..., Pn],[T1, ..., Tn]), 9 ask(T1=[_|_]) -> skip + 10 ask(T2=[_|_]) -> skip + 11 ... + 12 ask(Tn=[_|_]) -> skip, 13 getLast([P1, ..., Pn],[L1, ..., Ln]), 14 updatePosition(ID,S,[L1,..,Ln],NP), 15 tell(TID=[NP|_]), 16 run(ID,S,[P1, ..., Pn]). • The main clause is simulation. • Init is a variable containing n lists which contain the initial positions Ii. • n concurrent calls to run are called, one for each process aminoacid. L. Bortolussi, A. Dal Palù, A. Dovier, and F. Fogolari BIOCONCUR 2004 — 10/20 Abstract CCP program 1 simulation(S):2 Init=[[I1|_], [I2|_], ..., [In|_]], 3 run(1,S,Init) || 4 run(2,S,Init) || 5 ... || 6 run(n,S,Init). 7 run(ID, S, [P1, P2, ..., Pn]):8 getTails([P1, ..., Pn],[T1, ..., Tn]), 9 ask(T1=[_|_]) -> skip + 10 ask(T2=[_|_]) -> skip + 11 ... + 12 ask(Tn=[_|_]) -> skip, 13 getLast([P1, ..., Pn],[L1, ..., Ln]), 14 updatePosition(ID,S,[L1,..,Ln],NP), 15 tell(TID=[NP|_]), 16 run(ID,S,[P1, ..., Pn]).CCP program 1 simulation(S):2 Init=[[I1|_], [I2|_], ..., [In|_]], 3 run(1,S,Init) || 4 run(2,S,Init) || 5 ... || 6 run(n,S,Init). 7 run(ID, S, [P1, P2, ..., Pn]):8 getTails([P1, ..., Pn],[T1, ..., Tn]), 9 ask(T1=[_|_]) -> skip + 10 ask(T2=[_|_]) -> skip + 11 ... + 12 ask(Tn=[_|_]) -> skip, 13 getLast([P1, ..., Pn],[L1, ..., Ln]), 14 updatePosition(ID,S,[L1,..,Ln],NP), 15 tell(TID=[NP|_]), 16 run(ID,S,[P1, ..., Pn]). • ID is the identification code of the aminoacid. • getTails gets the tails of the lists P1,...,Pn and assigns them to the variables T1,...,Tn. • Then the process waits for one of these variables to be instantiated with ask(Ti=[_|_]) -> skip. L. Bortolussi, A. Dal Palù, A. Dovier, and F. Fogolari BIOCONCUR 2004 — 11/20 Abstract CCP programCCP program 1 simulation(S):2 Init=[[I1|_], [I2|_], ..., [In|_]], 3 run(1,S,Init) || 4 run(2,S,Init) || 5 ... || 6 run(n,S,Init). 7 run(ID, S, [P1, P2, ..., Pn]):8 getTails([P1, ..., Pn],[T1, ..., Tn]), 9 ask(T1=[_|_]) -> skip + 10 ask(T2=[_|_]) -> skip + 11 ... + 12 ask(Tn=[_|_]) -> skip, 13 getLast([P1, ..., Pn],[L1, ..., Ln]), 14 updatePosition(ID,S,[L1,..,Ln],NP), 15 tell(TID=[NP|_]), 16 run(ID,S,[P1, ..., Pn]). • Once this happens it retrieves the last information with getLast. • Then it updates its position with updatePosition and communicates its move to all other processes by means of tell. • Finally the run procedure is called recursively. L. Bortolussi, A. Dal Palù, A. Dovier, and F. Fogolari BIOCONCUR 2004 — 12/20 Movement Strategy The procedure updatePosition works in the following way: • The aminoacid randomly chooses a new position, close to the current one within a given step; • Using the most recent information available about the spatial position of other processes, it computes the energy relative to the choice; • It accepts the position using a Montecarlo criterion: If the new energy is lower than the current one, it accepts the move; If the new energy is greater than the current one, it accepts the move with probability e Enew−Ecurrent T . • This procedure depends on the spatial model adopted. L. Bortolussi, A. Dal Palù, A. Dovier, and F. Fogolari BIOCONCUR 2004 — 13/20
منابع مشابه
Two constraint-based tools for protein folding
Introduction. A protein is a list of linked units called aminoacids. There are 20 different kinds of aminoacids and the typical length of a protein is less than 500 units. The Protein Structure Prediction Problem (PSP) is the problem of predicting the 3D native conformation of a protein, when its aminoacid sequence is known. The process for reaching this state is called the protein folding. It ...
متن کاملProtein Folding Simulation in CCP
A protein is identified by a finite sequence of aminoacids, each of them chosen from a set of 20 elements. The Protein Structure Prediction Problem is the problem of predicting the 3D native conformation of a protein, when its sequence of aminoacids is known. This problem is fundamental for biological and pharmaceutical research. Due to intrinsic computational limits, no general solution is ava...
متن کاملProtein Structure Prediction
Protein structure prediction from sequence remains a premiere computational problem for modern molecular biology. The papers in this session address ab initio folding simulations and theoretical studies, the use of known structures as a basis for prediction, and analysis of how and what we know (or don't) about those known structures. The \thermodynamic hypothesis" asserts that proteins fold to...
متن کاملUsing constraint programming for lattice protein folding
We present a global search technique for finding the global minimal conformation of a sequence in Dill's HP-lattice model. The HP-lattice model is a simplified model of proteins, that has become a major tool for investigating general properties of protein folding. The search technique uses constraint programming for efficiently pruning the search tree. We state the problem of structure predicti...
متن کاملA Constraint-Based Framework for Prototyping Distributed Virtual Applications
This paper describes the architecture and implementation of a constraint-based framework for rapid prototyping of distributed applications such as virtual simulations, collaborations and games. Our framework integrates three components based on (concurrent) constraint programming ideas: (1) Hybrid cc, a (concurrent) constraint modeling language for hybrid systems, (2) Sisl, a (discrete) timed c...
متن کاملHybrid cc with Interval Constraints
Hybrid cc is a constraint programming language suitable for modeling, controlling and simulating hybrid systems, i.e. systems with continuous and discrete state changes. The language extends the concurrent constraint programming framework with default reasoning and combinators for programming continuous behavior. The most important constraint systems used in Hybrid cc are nonlinear equations an...
متن کامل